import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import '../keepAliveWrapper.dart';

class HomePage extends StatefulWidget {
  const HomePage({super.key});

  @override
  State<HomePage> createState() => _HomePageState();
}

class _HomePageState extends State<HomePage>  with SingleTickerProviderStateMixin {

  late TabController _tabController;

  @override
  void initState() {
    super.initState();
    _tabController=TabController(length: 8, vsync: this);
    _tabController.addListener(() {
      //会获取2次
      // print(_tabController.index);
      if(_tabController.animation?.value == _tabController.index){
        print(_tabController.index);
      }
    });
  }

  @override
  void dispose() {
    super.dispose();
    //销毁_tabController,会丢失状态
    _tabController.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: PreferredSize( //PreferredSize组件可以调整appbar的高度
        preferredSize: const Size.fromHeight(40),
        child: AppBar(
          elevation: 0.5, //配置appbar的阴影
          backgroundColor: Colors.white, //appbar背景色
          title:SizedBox(
            height: 40,
            child: TabBar(
              controller:_tabController,
              indicatorColor: Colors.red,   //指示器颜色
              indicatorSize: TabBarIndicatorSize.label, //指示器大小
              labelColor: Colors.red,       //选中字体颜色
              unselectedLabelColor: Colors.black,  //未选中字体颜色
              isScrollable :true,   //配置可滚动
              labelStyle: const TextStyle(
                fontSize: 14,
              ),
              onTap: (index){
                //只能监听点击事件,无法监听滑动事件
                print("点击事件$index");
              },
              tabs: const [
                Tab(child: Text("关注"),),
                Tab(child: Text("热门"),),
                Tab(child: Text("视频"),),
                Tab(child: Text("娱乐"),),
                Tab(child: Text("篮球"),),
                Tab(child: Text("深圳"),),
                Tab(child: Text("国际"),),
                Tab(child: Text("其他"),),
              ],
            ),
          ) ,
          centerTitle: true,
        ),
      ),
      body: TabBarView(
        controller:_tabController,
        children: [
          KeepAliveWrapper(
              child:ListView(
                children: const [
                  ListTile(title: Text("我是标题"),),
                  ListTile(title: Text("我是标题"),),
                  ListTile(title: Text("我是标题"),),
                  ListTile(title: Text("我是标题"),),
                  ListTile(title: Text("我是标题"),),
                  ListTile(title: Text("我是标题"),),
                  ListTile(title: Text("我是标题"),),
                  ListTile(title: Text("我是标题"),),
                  ListTile(title: Text("我是标题"),),
                  ListTile(title: Text("我是标题"),),
                  ListTile(title: Text("我是标题"),),
                  ListTile(title: Text("我是标题"),),
                  ListTile(title: Text("我是标题"),),
                  ListTile(title: Text("我是标题111"),),
                  ListTile(title: Text("我是标题111"),),
                  ListTile(title: Text("我是标题111"),),
                  ListTile(title: Text("我是标题111"),),
                  ListTile(title: Text("我是标题111"),),
                  ListTile(title: Text("我是标题1-最后一条"),),
                ],
              )
          ),
          const Text("我是热门"),
          const Text("我是视频"),
          const Text("我是娱乐"),
          const Text("我是篮球"),
          const Text("我是深圳"),
          const Text("我是国际"),
          const Text("我是其他"),
        ],
      )
    );
  }


}
